package com.dodoke.cake.dao;



import com.dodoke.cake.bean.CakeProduct;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
public interface ProductListDao {
	/**
	 * 得到所有商品数量
	 * @return
	 */
	int getAllProductCount();
	/**
	 * 得到当前页的数据
	 * @param fromWhichPage 从那一页开始
	 * @param eachPageData 每页显示多少条
	 * @return
	 */
	List<CakeProduct> getCurrentPageData(@Param("fromWhichPage") int fromWhichPage,@Param("eachPageData") int eachPageData);
	/**
	 * 根据id删除商品列表中的条目
	 * @param id
	 */
	int deleteCakeProductById(int id);

	/**
	 * 修改商品
	 */
	void upCakeProduct(CakeProduct cp);

	List<CakeProduct> selectAll();

	/**
	 * 根据id获得商品信息
	 * @param id
	 * @return
	 */
	CakeProduct getCakeInfo(int id);

	/**
	 * 根据id删除商品
	 * @param id
	 */
	void deleteCake(int id);

	/**
	 * 添加商品
	 * @param cakeProduct
	 */
	void insertCake(CakeProduct cakeProduct);

	/**
	 * 得到首页推荐商品
	 * @return
	 */
	List<CakeProduct> getRecommentProduct();
	/**
	 * 得到热卖商品
	 */
	List<CakeProduct> getBestSellProduct();


	/**
	 * 根据分类id得到该分类的所有商品数量
	 * @param cid
	 * @return
	 */
	int getCakeNumByCatalogId(int cid);


	/**
	 * 根据分类id获得商品
	 * @param cid
	 * @param fromWhichData
	 * @param eachPageData
	 * @return
	 */
	List<CakeProduct> getProductByCid(@Param("cid")int cid, @Param("fromWhichData")int fromWhichData,@Param("eachPageData") int eachPageData);
}
